package util.tool.log;

import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;

import java.io.File;
import java.util.concurrent.TimeUnit;

public class LogPrint {

    /**
     * 提取sql
     *
     * @param args
     */
    public static void main(String[] args) {
        // 监控目录
//        String rootDir = System.getProperty("user.dir") + File.separator + "log";
        String rootDir = "D:\\lw\\log";
        // 5秒监听一次
        listenerSql(rootDir, 5);
    }

    /**
     * 监听日志打印
     */
    public static void listenerSql(String path, int time) {
        try {
//            // 创建过滤器
//            IOFileFilter directories = FileFilterUtils.and(
//                    FileFilterUtils.directoryFileFilter(),
//                    HiddenFileFilter.VISIBLE);
//            IOFileFilter files = FileFilterUtils.and(
//                    FileFilterUtils.fileFileFilter(),
//                    FileFilterUtils.suffixFileFilter(".txt"));
//            IOFileFilter filter = FileFilterUtils.or(directories, files);
//            // 使用过滤器
//            FileAlterationObserver observer = new FileAlterationObserver(new File(rootDir), filter);
            //不使用过滤器
            FileAlterationObserver observer = new FileAlterationObserver(new File(path));
            observer.addListener(new FileListener());
            //创建文件变化监听器
            FileAlterationMonitor monitor = new FileAlterationMonitor(TimeUnit.SECONDS.toMillis(time), observer);
            // 开始监控
            monitor.start();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("卧槽，错了。。。");
        }
    }

}
